diff --git a/docs/Flow.md b/docs/Flow.md index 73b630c..e00d379 100644 --- a/docs/Flow.md +++ b/docs/Flow.md @@ -3,3 +3,32 @@ A flow is used to represent a workflow or manufacturing process. ## Flow Info You define a flow within a JSON file stored in `./flows`. + +A flow consists of: +- `name` - The name of the flow. +- `depends` - A list of item variants that this flow depends on. +- `next` - Optional continuation of the flow +- `produces` - Optional list of item variants produced by the flow. + +Example: +```json +{ + "name": "Flow 1", + "depends": ["item::variant"], + "next": "flow2", + "produces": ["item::variant"] +} +``` + +## Flow Dependencies +A flow can depend on items. These can be resource requirements for the flow. +For example, a flow for growing plants can depend on a Seed item, which the flow can consume when started. + +## Next Flows +A flow can have a next flow. This is used to chain complex workflows together into a pipeline. +Often times many steps are needed for manufacturing. Each step can be a seperate flow, but then chained together with a next flow. +This way you can split up different parts and still have a continues workflow. + +## Producing Items +A flow can produce items. These are used to represent the output of the flow. +With items from a flow you can trace back to their original source like a supply chain.