can_build_upon: RuntimeDescriptor<[included_hash: FixedSizeBinary<32>, slot: bigint], boolean>

Whether it is legal to extend the chain, assuming the given block is the most recently included one as-of the relay parent that will be built against, and the given slot.

This should be consistent with the logic the runtime uses when validating blocks to avoid issues.

When the unincluded segment is empty, i.e. included_hash == at, where at is the block whose state we are querying against, this must always return true as long as the slot is more recent than the included block itself.