Skip to content

Error

MoCHI diagnostics have MOCHInnnn numbers, 61 in total. The origin category for each number tells you where to fix it.

CategoryNumber countWhat to do
subset45Fix the markup (origin category).
environment14Fix the project (origin category).
tool2It’s a problem on MoCHI’s side (origin category).
NumberCategoryMeaningExample
MOCHI1001subsetNot well-formed XML (unclosed tag, unquoted attribute, DOCTYPE).
MOCHI1003subsetThe root element’s name doesn’t match the file name (case-sensitive).root-name-mismatch
MOCHI1004subsetAn element that can’t be written at that position (<At> outside <Prefab>, <Props> not directly under the root element, a second <Props>, <Transform>, a component outside a host, a child element of a component or <Slot>, <Row> and <Grid> under a Canvas, <TMP_SubMesh> and <TMP_SubMeshUI>, which Unity does not save in a prefab, and so on).at-outside-prefab・component-in-for・else-without-if・prop-child・row-in-canvas・transform-element・two-props
MOCHI1005subsetAn attribute that element doesn’t take (including position and size under a Canvas, anchoredPosition3D on the root of a Canvas, and anchoredPosition together with anchoredPosition3D on the same GameObject). The message usually lists the attributes it takes.anchored-position3d-root・anchored-position3d-with-anchored-position・component-attribute・prop-object-default・props-attribute・rect-position・root-attribute・row-child-position・row-with-size・tag-attribute
MOCHI1006subsetThere’s text inside the element. Write values in attributes.text-in-element
MOCHI1007subsetXML namespaces (prefixes, xmlns) can’t be used.namespace
MOCHI1008subsetA required attribute is missing (src, path, each and in, test, columns, size on a child of <Row> or <Grid>, size for pivot, gap for overflow="repeat", material for mainTexture and color, and so on).grid-without-columns・pivot-without-size・repeat-without-gap・row-child-without-size・texture-without-material
MOCHI1009subsetThe value has the wrong format (float, int, bool, Vector3, Color, an enum, a static word, a <Slot> name, a fill pattern and so on). Also reported when a path without #key points to a GameObject with two or more UdonBehaviours (including a GameObject inside a placed <Prefab>)bool-capital・color-name・color-short・columns-too-many・enum-case・fill-binding・layer-name-unknown・name-empty・number-exponent・slot-binding・static-unknown・value-out-of-range・vector-comma・vector-two-numbers
MOCHI1010subsetA Unity component VRChat does not allow in worlds. VRChat removes it on upload.component-not-allowed
MOCHI1011subsetA component needed on the same GameObject is missing (an Audio Filter needs an AudioSource).audio-filter-alone
MOCHI1012subsetThe programs of UdonBehaviours on the same GameObject declare different sync modes other than None. VRChat gives the synced UdonBehaviours on one GameObject only one sync mode
NumberCategoryMeaningExample
MOCHI2001subsetThe path’s format is wrong, or it points outside Assets/ and Packages/. This also covers using a builtin: name in place of a path.builtin-material-color・path-backslash・path-outside
MOCHI2002environmentThe file the path points to (a part, a prefab, an asset, a table) doesn’t exist.
MOCHI2003environmentThe folder in folder() doesn’t exist.
MOCHI2004environmentThe file the table’s file column points to doesn’t exist.
MOCHI2005environmentThe table’s (CSV or JSON) format is wrong, or it uses a reserved column name.table-key-column
MOCHI2006environmentThe table row has no key (there’s neither an id column nor a file column, id is empty, or a JSON table mixes rows with and without id).table-empty-id・table-row-without-key
MOCHI2007subsetin isn’t in the form folder('…') or table('…'), or the table is neither .csv nor .json.data-source-double-quote・for-in-from-prop
MOCHI2008subsetThe asset’s type is wrong (src that isn’t a .prefab, material that isn’t a .mat, .asset that isn’t a Mesh, an asset that doesn’t match a prop’s type, and so on).
MOCHI2009environmentThe asset has no .meta. Unity hasn’t imported it yet.
MOCHI2010subsetThe object <At path> or <Slot path> points to doesn’t exist in the prefab, or the name is ambiguous because it’s duplicated. This also covers no object matching a fill pattern.at-path-not-found
MOCHI2011environmentCan’t read the prefab or .mat.
MOCHI2012subsetThe part has no <Slot> for the content’s destination.slot-unknown
MOCHI2013environmentNext to a part with a T# script, there’s no T# program asset for its .cs.
MOCHI2014environmentA <Name>.Mochi.cs that’s no longer needed is left behind (warning).
MOCHI2015subsetThere is no GameObject at the path that points to something in the same prefab (including a path that goes above the root of the prefab).object-ref-not-found・prop-object-not-found
MOCHI2016subsetThe GameObject at the path has no component of the attribute’s type (for onClick, it is not a part with a T# script).object-ref-no-component
MOCHI2017environmentUnity has not read what is inside the model file (such as .fbx) yet (when checked outside Unity; save the file once in Unity and it can be read)
MOCHI2018environmentA mesh inside a <Prefab> placed in a <Row> or <Grid> without size comes from a model Unity has not read yet, so its size can’t be measured. Save the file in Unity once, or write size.
MOCHI2019environmentA file that MoCHI did not generate is where the generated file would be written. MoCHI does not overwrite it and generates nothing. Rename or move that file to generate
NumberCategoryMeaningExample
MOCHI3001subsetThere’s no element or part with that name. This also covers a Unity component not in the table.
MOCHI3002subsetThere are two or more parts with the same name.duplicate-part-name
MOCHI3003subsetThe part’s name is a built-in element’s name.builtin-part-name
MOCHI3004subsetThe part uses itself.part-cycle
MOCHI3005subsetThe part is passed props it doesn’t declare.prop-undeclared
MOCHI3006subsetThe prop’s value doesn’t match its type, or the type name is unknown. This also covers a runtime value whose type doesn’t match.prop-object-as-name・prop-type-case・prop-wrong-type
MOCHI3007subsetThe prop’s name is slot or a host attribute’s name.prop-reserved
MOCHI3008subsetA prop with no default isn’t passed (at the entry point, this appears on the root element).entry-prop-without-default・prop-missing
MOCHI3009subsetThe same prop is declared twice.
MOCHI3010subsetThe prefab has no component matching what’s being changed, or the .mat has no image or color property.override-missing-component
MOCHI3011subsetThe same <Slot> is placed at two spots in the part.slot-twice
MOCHI3012subsetThere are more children than mount points.too-many-to-fill
MOCHI3013subsetThe entry point file changes the inside of a prefab.override-in-entry
MOCHI3014subsetA part with a T# script’s prop name can’t be a C# field name.
MOCHI3015subsetThe C# class doesn’t meet a part’s requirements (no class, no partial, doesn’t inherit TsukimiBehaviour directly, a name collides with a generated member, an unusable prop name).
MOCHI3016subsetThe T# script can’t compile together with MoCHI’s generated files.
MOCHI3017subsetA part has the same name as a component, so the tag was read as the part (a warning). To write the component, rename the part (its file and its root element)
NumberCategoryMeaningExample
MOCHI4001subsetIdentity collides under the same parent, a component key is used twice on one GameObject, or two different material copies are being written to the same path.component-key-twice・for-constant-key・same-name-different-image・same-name-siblings
MOCHI4002environmentThe same key is used twice in the table.
MOCHI4003toolAn ID inside the prefab collided by coincidence.
NumberCategoryMeaningExample
MOCHI5001subsetThe binding’s name is in neither the props nor the row, or the row has no such column.caller-row-not-visible・default-with-binding
MOCHI5002subsetThe binding has the wrong format (not the whole value, a row name only, a name of the wrong form). Also reported when the active of the same GameObject is set both by a runtime value and by another value, and for a value that starts with {{ and has }} anywhere after itbinding-call・binding-empty・binding-in-text・binding-name-hyphen・binding-two-dots・literal-brace-closing-middle・literal-brace-closing・row-without-column
MOCHI5003subset<If>’s test isn’t a true or false fixed at generation.if-not-bool
MOCHI5004subsetA value that changes at runtime is written where a value fixed at generation belongs.
MOCHI5005subsetT# can’t track changes to the member written in active.
MOCHI5006subsetA function a binding calls reads a [Reactive] field, [Computed] property or runtime prop of another instance or another class (a warning). The binding is not set again when that value changes (Values that change at runtime)
NumberCategoryMeaningExample
MOCHI6001subsetThe class of a part with a T# script writes to the field of one of its own props (Prop values).
NumberCategoryMeaningExample
MOCHI7001subsetThe root of a World Space Canvas has no sizeDelta (a warning). The generated object keeps Unity’s default size (100 × 100), which is likely not the size you meant. If that size is what you want, write sizeDelta="100 100" and the warning goes away
NumberCategoryMeaningExample
MOCHI8001environmentA part, or a binding that calls a function, needs T#, but T# is not in this environment.
NumberCategoryMeaningExample
MOCHI9001subsetNot supported yet. Write it a different way.part-pivot-moved-root
MOCHI9900toolAn internal MoCHI error. Report it with the file attached.

The following 84 examples are machine-checked down to the number that’s raised.

MOCHI1003

Assets/Example/Shelf.mochi.xml
<shelf prefab="true">
<Object name="Board"/>
</shelf>

MOCHI1004

Assets/Hall/Room.mochi.xml
<Room>
<Object name="Door">
<At path=""/>
</Object>
</Room>
<!-- file: Assets/Hall/Hall.mochi.xml -->
<Hall prefab="true">
<Room/>
</Hall>

MOCHI1004

Assets/Example/Stage.mochi.xml
<Stage prefab="true">
<Object name="Wall">
<For each="art" in="folder('../Gallery/art/')">
<MeshFilter mesh="builtin:Quad"/>
</For>
</Object>
</Stage>

MOCHI1004

Assets/Example/Shelf.mochi.xml
<Shelf prefab="true">
<Object name="Top"/>
<Else>
<Object name="Bottom"/>
</Else>
</Shelf>

MOCHI1004

Assets/Example/Shelf.mochi.xml
<Shelf prefab="true">
<Label/>
</Shelf>
<!-- file: Assets/Example/Label.mochi.xml -->
<Label>
<Props>
<Prop name="text" type="string">
<Object name="Default"/>
</Prop>
</Props>
<Object name="{text}"/>
</Label>

MOCHI1004

Assets/Example/Menu.mochi.xml
<Menu prefab="true">
<Object name="Panel">
<Canvas renderMode="WorldSpace"/>
<Row spacing="10">
<Object name="A"><Image/></Object>
<Object name="B"><Image/></Object>
</Row>
</Object>
</Menu>

MOCHI1004

Assets/Example/Stage.mochi.xml
<Stage prefab="true">
<Object name="Box">
<Transform position="0 1 0"/>
</Object>
</Stage>

MOCHI1004

Assets/Hall/Hall.mochi.xml
<Hall prefab="true">
<Plaque title="Welcome" offset="0 2 0"/>
</Hall>
<!-- file: Assets/Hall/Plaque.mochi.xml -->
<Plaque>
<Props>
<Prop name="title" type="string"/>
</Props>
<Props>
<Prop name="offset" type="Vector3"/>
</Props>
<Object name="{title}" position="{offset}"/>
</Plaque>

MOCHI1005

Assets/Example/Sign.mochi.xml
<Sign prefab="true">
<Object name="Panel" scale="0.001 0.001 0.001" sizeDelta="800 400" anchoredPosition3D="0 0 -20">
<Canvas renderMode="WorldSpace"/>
</Object>
</Sign>

anchored-position3d-with-anchored-position

Section titled “anchored-position3d-with-anchored-position”

MOCHI1005

Assets/Example/Sign.mochi.xml
<Sign prefab="true">
<Object name="Panel" scale="0.001 0.001 0.001" sizeDelta="800 400">
<Canvas renderMode="WorldSpace"/>
<Object name="Title" anchoredPosition="0 120" anchoredPosition3D="0 120 -20" sizeDelta="600 80">
<TextMeshProUGUI text="Gallery"/>
</Object>
</Object>
</Sign>

MOCHI1005

Assets/Example/Lamp.mochi.xml
<Lamp prefab="true">
<Object name="Bulb">
<Light brightness="2"/>
</Object>
</Lamp>

MOCHI1005

Assets/Hall/Hall.mochi.xml
<Hall prefab="true">
<Seat name="Seat"/>
</Hall>
<!-- file: Assets/Hall/Seat.mochi.xml -->
<Seat>
<Props>
<Prop name="target" type="Object" default="../Exit"/>
</Props>
<Object name="Cushion">
<VRCStation stationExitPlayerLocation="{target}"/>
</Object>
</Seat>

MOCHI1005

Assets/Example/Sign.mochi.xml
<Sign prefab="true">
<Props count="1"/>
</Sign>

MOCHI1005

Assets/Example/Board.mochi.xml
<Board prefab="true">
<Object name="Panel">
<Canvas renderMode="WorldSpace"/>
<Object name="Title" position="0 40 0">
<TextMeshProUGUI text="Gallery"/>
</Object>
</Object>
</Board>

MOCHI1005

Assets/Example/Stage.mochi.xml
<Stage prefab="true" position="0 1 0">
<Object name="Floor"/>
</Stage>

MOCHI1005

Assets/Example/Shelf.mochi.xml
<Shelf prefab="true">
<Row name="Books" spacing="0.05">
<Object name="A" size="0.1 0.3 0.2"/>
<Object name="B" size="0.1 0.3 0.2" position="0.5 0 0"/>
</Row>
</Shelf>

MOCHI1005

Assets/Example/Shelf.mochi.xml
<Shelf prefab="true">
<Row name="Books" size="1 0.3 0.2">
<Object name="A" size="0.1 0.3 0.2"/>
</Row>
</Shelf>

MOCHI1005

Assets/Example/Lobby.mochi.xml
<Lobby prefab="true">
<Object name="Door" tag="Respawn"/>
</Lobby>

MOCHI1006

Assets/Example/Field.mochi.xml
<Field prefab="true">
<Object name="Sign">Welcome</Object>
</Field>

MOCHI1007

Assets/Example/Sign.mochi.xml
<Sign prefab="true" xmlns="urn:example">
<Object name="Board"/>
</Sign>

MOCHI1008

Assets/Example/Tiles.mochi.xml
<Tiles prefab="true">
<Grid name="Board" spacing="0.5">
<Object name="A" size="1 1 0.1"/>
</Grid>
</Tiles>

MOCHI1008

Assets/Example/Office.mochi.xml
<Office prefab="true">
<Object name="Desk" pivot="0.5 0 0.5"/>
</Office>

MOCHI1008

Assets/Example/Hall.mochi.xml
<Hall prefab="true">
<Prefab src="../Kit/KitRoom.prefab" fill="Mount*" overflow="repeat">
<For each="art" in="folder('../Gallery/art/')">
<Object key="{art.key}" name="{art.title}"/>
</For>
<For each="row" in="table('../Data/art.csv')">
<Object key="{row.key}" name="{row.title}"/>
</For>
<Object name="Guide"/>
</Prefab>
</Hall>

MOCHI1008

Assets/Example/Shelf.mochi.xml
<Shelf prefab="true">
<Row name="Books" spacing="0.05">
<Object name="A" size="0.1 0.3 0.2"/>
<Object name="B"/>
</Row>
</Shelf>

MOCHI1008

Assets/Gallery/Wall.mochi.xml
<Wall prefab="true">
<Object name="Canvas">
<MeshFilter mesh="builtin:Quad"/>
<MeshRenderer mainTexture="art/01_Sea.png"/>
</Object>
</Wall>

MOCHI1009

Assets/Example/Field.mochi.xml
<Field prefab="true">
<Object name="Hidden" active="False"/>
</Field>

MOCHI1009

Assets/Example/Field.mochi.xml
<Field prefab="true">
<Object name="Lamp">
<Light color="orange"/>
</Object>
</Field>

MOCHI1009

Assets/Example/Lamp.mochi.xml
<Lamp prefab="true">
<Object name="Bulb">
<Light color="#FFF"/>
</Object>
</Lamp>

MOCHI1009

Assets/Example/Wall.mochi.xml
<Wall prefab="true">
<Grid columns="10001">
<Object size="1 1 0"/>
</Grid>
</Wall>

MOCHI1009

Assets/Example/Lamp.mochi.xml
<Lamp prefab="true">
<Object name="Bulb">
<Light type="point"/>
</Object>
</Lamp>

MOCHI1009

Assets/Hall/Room.mochi.xml
<Room>
<Props>
<Prop name="mounts" type="string" default="Mount*"/>
</Props>
<Prefab src="../Kit/KitRoom.prefab" fill="{mounts}"/>
</Room>
<!-- file: Assets/Hall/Hall.mochi.xml -->
<Hall prefab="true">
<Room/>
</Hall>

MOCHI1009

Assets/Example/Watcher.mochi.xml
<Watcher prefab="true">
<Object name="Camera">
<Camera cullingMask="Default; Glass"/>
</Object>
</Watcher>

MOCHI1009

Assets/Example/Sign.mochi.xml
<Sign prefab="true">
<Object name=""/>
</Sign>

MOCHI1009

Assets/Example/Field.mochi.xml
<Field prefab="true">
<Object name="Far" position="0 0 1e3"/>
</Field>

MOCHI1009

Assets/Example/Board.mochi.xml
<Board prefab="true">
<Props>
<Prop name="where" type="string" default="title"/>
</Props>
<Card>
<Object name="Title" slot="{where}"/>
</Card>
</Board>
<!-- file: Assets/Example/Card.mochi.xml -->
<Card>
<Object name="Top"><Slot name="title"/></Object>
</Card>

MOCHI1009

Assets/Example/Lobby.mochi.xml
<Lobby prefab="true">
<Object name="Floor" static="navigation"/>
</Lobby>

MOCHI1009

Assets/Example/Loud.mochi.xml
<Loud prefab="true">
<Object name="Radio">
<AudioSource volume="1.5"/>
</Object>
</Loud>

MOCHI1009

Assets/Example/Field.mochi.xml
<Field prefab="true">
<Object name="Sign" position="0,1.5,0"/>
</Field>

MOCHI1009

Assets/Example/Sign.mochi.xml
<Sign prefab="true">
<Object name="Board" position="0 1.5"/>
</Sign>

MOCHI1010

Assets/Example/Walker.mochi.xml
<Walker prefab="true">
<Object name="Body">
<CharacterController/>
</Object>
</Walker>

MOCHI1011

Assets/Example/Muffled.mochi.xml
<Muffled prefab="true">
<Object name="Radio">
<AudioLowPassFilter cutoffFrequency="800"/>
</Object>
</Muffled>

MOCHI2001

Assets/Example/Tint.mochi.xml
<Tint prefab="true">
<Object name="Box">
<MeshFilter mesh="builtin:Cube"/>
<MeshRenderer material="builtin:Default-Material" color="#FF0000"/>
</Object>
</Tint>

MOCHI2001

Assets/Example/Entrance.mochi.xml
<Entrance prefab="true">
<Prefab src="..\Kit\KitFrame.prefab"/>
</Entrance>

MOCHI2001

Assets/Hall/Hall.mochi.xml
<Hall prefab="true">
<Prefab src="../../Kit/KitFrame.prefab"/>
</Hall>

MOCHI2005

Assets/Example/Index.mochi.xml
<Index prefab="true">
<For each="r" in="table('rooms.csv')">
<Object name="{r.title}" key="{r.key}"/>
</For>
</Index>
<!-- file: Assets/Example/rooms.csv -->
id,key,title
east,1,East Room
west,2,West Room

MOCHI2006

Assets/Example/Index.mochi.xml
<Index prefab="true">
<For each="r" in="table('rooms.csv')">
<Object name="{r.title}" key="{r.key}"/>
</For>
</Index>
<!-- file: Assets/Example/rooms.csv -->
id,title
east,East Room
,West Room

MOCHI2006

Assets/Example/Index.mochi.xml
<Index prefab="true">
<For each="r" in="table('rooms.csv')">
<Object name="{r.title}"/>
</For>
</Index>
<!-- file: Assets/Example/rooms.csv -->
title
East Room
West Room

MOCHI2007

Assets/Gallery/Wall.mochi.xml
<Wall prefab="true">
<For each="art" in="folder(&quot;art/&quot;)">
<Object key="{art.key}" name="{art.title}"/>
</For>
</Wall>

MOCHI2007

Assets/Gallery/Wall.mochi.xml
<Wall prefab="true">
<Props>
<Prop name="source" type="string" default="folder('art/')"/>
</Props>
<For each="art" in="{source}">
<Object key="{art.key}" name="{art.title}"/>
</For>
</Wall>

MOCHI2010

Assets/Example/Wall.mochi.xml
<Wall prefab="true">
<Framed/>
</Wall>
<!-- file: Assets/Example/Framed.mochi.xml -->
<Framed>
<Prefab src="../Kit/KitFrame.prefab">
<At path="Plate/Title" active="false"/>
</Prefab>
</Framed>

MOCHI2012

Assets/Example/Board.mochi.xml
<Board prefab="true">
<Card>
<Object name="Footer" slot="footer"/>
</Card>
</Board>
<!-- file: Assets/Example/Card.mochi.xml -->
<Card>
<Object name="Top"><Slot name="title"/></Object>
</Card>

MOCHI2015

Assets/Example/Menu.mochi.xml
<Menu prefab="true">
<Object name="Panel">
<Canvas renderMode="WorldSpace"/>
<ScrollRect content="Contents"/>
<Object name="Content"/>
</Object>
</Menu>

MOCHI2015

Assets/Hall/Hall.mochi.xml
<Hall prefab="true">
<Seat name="Seat" target="../Exit"/>
</Hall>
<!-- file: Assets/Hall/Seat.mochi.xml -->
<Seat>
<Props>
<Prop name="target" type="Object"/>
</Props>
<Object name="Cushion">
<VRCStation stationExitPlayerLocation="{target}"/>
</Object>
</Seat>

MOCHI2016

Assets/Example/Menu.mochi.xml
<Menu prefab="true">
<Object name="Panel">
<Canvas renderMode="WorldSpace"/>
<Object name="Close">
<Button targetGraphic="../Label"/>
</Object>
<Object name="Label"/>
</Object>
</Menu>

MOCHI3002

Assets/Hall/Hall.mochi.xml
<Hall prefab="true">
<Sign/>
</Hall>
<!-- file: Assets/Hall/Sign.mochi.xml -->
<Sign>
<Object name="Board"/>
</Sign>
<!-- file: Assets/Parts/Sign.mochi.xml -->
<Sign>
<Object name="Plate"/>
</Sign>

MOCHI3003

Assets/Example/Grid.mochi.xml
<Grid prefab="true">
<Object name="Tile"/>
</Grid>

MOCHI3004

Assets/Example/Tower.mochi.xml
<Tower prefab="true">
<Floor/>
</Tower>
<!-- file: Assets/Example/Floor.mochi.xml -->
<Floor>
<Object name="Slab"/>
<Floor position="0 3 0"/>
</Floor>

MOCHI3005

Assets/Hall/Hall.mochi.xml
<Hall prefab="true">
<Plaque name="Entrance" title="Welcome" colour="#FF0000"/>
</Hall>
<!-- file: Assets/Hall/Plaque.mochi.xml -->
<Plaque>
<Props>
<Prop name="title" type="string"/>
</Props>
<Object name="{title}"/>
</Plaque>

MOCHI3006

Assets/Hall/Hall.mochi.xml
<Hall prefab="true">
<Object name="Exit"/>
<Sign name="Sign" target="../Exit"/>
</Hall>
<!-- file: Assets/Hall/Sign.mochi.xml -->
<Sign>
<Props>
<Prop name="target" type="Object"/>
</Props>
<Object name="{target}"/>
</Sign>

MOCHI3006

Assets/Example/Sign.mochi.xml
<Sign prefab="true">
<Props>
<Prop name="count" type="Int" default="1"/>
</Props>
</Sign>

MOCHI3006

Assets/Hall/Hall.mochi.xml
<Hall prefab="true">
<Rack shelves="1.5"/>
</Hall>
<!-- file: Assets/Hall/Rack.mochi.xml -->
<Rack>
<Props>
<Prop name="shelves" type="int"/>
</Props>
<Object name="Frame"/>
</Rack>

MOCHI3007

Assets/Hall/Hall.mochi.xml
<Hall prefab="true">
<Plaque/>
</Hall>
<!-- file: Assets/Hall/Plaque.mochi.xml -->
<Plaque>
<Props>
<Prop name="position" type="Vector3" default="0 1 0"/>
</Props>
<Object name="Board" position="{position}"/>
</Plaque>

MOCHI3008

Assets/Example/Stage.mochi.xml
<Stage prefab="true">
<Props>
<Prop name="title" type="string"/>
</Props>
<Object name="{title}"/>
</Stage>

MOCHI3008

Assets/Hall/Hall.mochi.xml
<Hall prefab="true">
<Plaque name="Entrance"/>
</Hall>
<!-- file: Assets/Hall/Plaque.mochi.xml -->
<Plaque>
<Props>
<Prop name="title" type="string"/>
</Props>
<Object name="{title}"/>
</Plaque>

MOCHI3010

Assets/Example/Wall.mochi.xml
<Wall prefab="true">
<Framed/>
</Wall>
<!-- file: Assets/Example/Framed.mochi.xml -->
<Framed>
<Prefab src="../Kit/KitFrame.prefab">
<Light intensity="2"/>
</Prefab>
</Framed>

MOCHI3011

Assets/Example/Board.mochi.xml
<Board prefab="true">
<Card/>
</Board>
<!-- file: Assets/Example/Card.mochi.xml -->
<Card>
<Object name="Front"><Slot/></Object>
<Object name="Back"><Slot/></Object>
</Card>

MOCHI3012

Assets/Example/Hall.mochi.xml
<Hall prefab="true">
<Prefab src="../Kit/KitRoom.prefab" fill="Mount*">
<For each="art" in="folder('../Gallery/art/')">
<Object key="{art.key}" name="{art.title}"/>
</For>
<For each="row" in="table('../Data/art.csv')">
<Object key="{row.key}" name="{row.title}"/>
</For>
<Object name="Guide"/>
</Prefab>
</Hall>

MOCHI3013

Assets/Example/Wall.mochi.xml
<Wall prefab="true">
<Prefab src="../Kit/KitFrame.prefab">
<At path="Plate/Label" active="false"/>
</Prefab>
</Wall>

MOCHI4001

Assets/Example/Speaker.mochi.xml
<Speaker prefab="true">
<Object name="Box">
<AudioSource key="music"/>
<BoxCollider key="music"/>
</Object>
</Speaker>

MOCHI4001

Assets/Example/Shelf.mochi.xml
<Shelf prefab="true">
<For each="art" in="folder('../Gallery/art/')">
<Object key="frame" name="{art.title}"/>
</For>
</Shelf>

MOCHI4001

Assets/Gallery/Wall.mochi.xml
<Wall prefab="true">
<Object name="Canvas">
<MeshFilter mesh="builtin:Quad"/>
<MeshRenderer material="../Art/Frame.mat" mainTexture="art/01_Sea.png"/>
</Object>
<Object name="canvas" position="2 0 0">
<MeshFilter mesh="builtin:Quad"/>
<MeshRenderer material="../Art/Frame.mat" mainTexture="art/02_Moon.png"/>
</Object>
</Wall>

MOCHI4001

Assets/Example/Gate.mochi.xml
<Gate prefab="true">
<Object name="Pillar" position="-2 0 0"/>
<Object name="Pillar" position="2 0 0"/>
</Gate>

MOCHI5001

Assets/Gallery/Wall.mochi.xml
<Wall prefab="true">
<For each="art" in="folder('art/')">
<Caption key="{art.key}"/>
</For>
</Wall>
<!-- file: Assets/Gallery/Caption.mochi.xml -->
<Caption>
<Object name="{art.title}"/>
</Caption>

MOCHI5001

Assets/Example/Sign.mochi.xml
<Sign prefab="true">
<Props>
<Prop name="title" type="string" default="Hall"/>
<Prop name="caption" type="string" default="{title}"/>
</Props>
<Object name="{caption}"/>
</Sign>

MOCHI5002

Assets/Example/Sign.mochi.xml
<Sign prefab="true">
<Object name="{Title()}"/>
</Sign>

MOCHI5002

Assets/Example/Sign.mochi.xml
<Sign prefab="true">
<Object name="{}"/>
</Sign>

MOCHI5002

Assets/Example/Rooms.mochi.xml
<Rooms prefab="true">
<For each="art" in="folder('../Gallery/art/')">
<Object key="{art.key}" name="Room {art.title}"/>
</For>
</Rooms>

MOCHI5002

Assets/Hall/Hall.mochi.xml
<Hall prefab="true">
<Plaque my-title="Welcome"/>
</Hall>
<!-- file: Assets/Hall/Plaque.mochi.xml -->
<Plaque>
<Props>
<Prop name="my-title" type="string"/>
</Props>
<Object name="{my-title}"/>
</Plaque>

MOCHI5002

Assets/Gallery/Wall.mochi.xml
<Wall prefab="true">
<For each="art" in="folder('art/')">
<Object key="{art.key}" name="{art.title.text}"/>
</For>
</Wall>

MOCHI5002

Assets/Example/Score.mochi.xml
<Score prefab="true">
<Object name="{{score}} pts"/>
</Score>

MOCHI5002

Assets/Example/Notes.mochi.xml
<Notes prefab="true">
<Object name="{{score}}"/>
</Notes>

MOCHI5002

Assets/Example/Rooms.mochi.xml
<Rooms prefab="true">
<For each="art" in="folder('../Gallery/art/')">
<Object name="{art}"/>
</For>
</Rooms>

MOCHI5003

Assets/Example/Fair.mochi.xml
<Fair prefab="true">
<Props>
<Prop name="count" type="int" default="2"/>
</Props>
<If test="{count}">
<Object name="Lamp"/>
</If>
</Fair>

MOCHI9001

Assets/Example/Office.mochi.xml
<Office prefab="true">
<Desk pivot="0.5 0 0.5"/>
</Office>
<!-- file: Assets/Example/Desk.mochi.xml -->
<Desk>
<Object name="Top" size="1.2 0.05 0.6" rotation="0 30 0"/>
</Desk>