// Link markers (arrow, dot, diamond, crow on |line|) and template-internal links
// — a |define| whose body links its own children, so every instance routes itself.
{
layout: column; gap: 40; padding: 24; font-weight: normal;
|room::group| {
layout: column; gap: 10; padding: 12; fill: --teal-wash; stroke: --teal-ink;
} [
|box#inlet| "in" {
fill: --teal-soft; stroke: --teal-ink; color: --teal-ink;
}
|box#outlet| "out" {
fill: --teal-soft; stroke: --teal-ink; color: --teal-ink;
}
inlet -> outlet "flows"
]
}
|block| "Markers & internal links" { font-size: 18; font-weight: bold; }
|group#ends| { layout: column; gap: 14; } [
|caption| "markers"
|line| {
points: -80 0, 80 0; marker-end: arrow; stroke: --sky-deep; stroke-width: 2;
}
|line| {
points: -80 0, 80 0; marker-start: dot; marker-end: dot; stroke: --green-deep; stroke-width: 2;
}
|line| {
points: -80 0, 80 0; marker-end: diamond; stroke: --purple-deep; stroke-width: 2;
}
|line| {
points: -80 0, 80 0; marker-end: crow; stroke: --orange-deep; stroke-width: 2;
}
]
// each |room| materialises its own inlet -> outlet link from the define body
|row#rooms| { gap: 64; padding: 26 0 0 0; } [
|caption| "internal links"
|room#garden| "Garden"
|room#kitchen| "Kitchen"
]
rooms.garden.outlet -> rooms.kitchen.inlet "carries"