pub struct Node {
pub id: NodeId,
pub intent: String,
pub note: Option<String>,
pub stations: Vec<Station>,
pub reached: bool,
}Expand description
A place: a room, a courtyard, an arena, a stretch of shore, a cavern.
Fields§
§id: NodeIdNode id (node/<kebab>), unique within the graph.
intent: StringWhat this place is for, in the author’s own words.
A free non-empty label — arena, hub, vista, gate-house,
shortcut-landing — that no check keys on. It is recorded judgement
for the reviewer and for the later per-place briefs, and it is kept
free-form deliberately: an enum of intents would be this month’s genre
wearing a schema’s clothes.
note: Option<String>Anything the reviewer needs that intent does not carry.
stations: Vec<Station>The named places inside this one (spec-0052 §3).
A site-plan campaign’s anchor vocabulary is otherwise exactly the
synthesized set — spawn, one anchor per node, and the seam and unlock
anchors of barred edges — which is complete only for the authoring order
it was designed for: quests written against nodes before any piece
exists. The inverse order is real, and its quest layer names places
inside places: the fire pit in the camp, the aft deck of the galley.
Those names are the campaign’s design, and flattening them onto box
centres un-writes its spatial script.
A station is a name and a shape, never a position (§5): while the box
is massed the derivation realizes each station at a stand-in of its own,
and when a piece is bound the detail-plan anchors map re-binds it to
an anchor of that piece, which is where the name gets its real place.
There is no coordinate, offset or hint field here, and that absence is
the design rather than an omission.
Declared names join the campaign vocabulary at the same authority as
every synthesized one — crate::siteplan::synthesized_anchors is still
the single place the question is answered, so a name that validates
cannot fail to exist in the built world.
reached: boolWhether a body reaches this place (spec-0098 §14, a ruling).
false declares the place scenery — a box built to be seen and never
entered, a tree’s crown over a treehouse — and the checks confirm that
intent both ways: the closure must not reach it (DW0816) and no body
may get into it in the built world (DW0837), exactly as a reached
place must be reached. Absent means reached.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Node
impl<'de> Deserialize<'de> for Node
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for Node
impl JsonSchema for Node
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more