package workflow import ( "bytes" "encoding/json" "fmt" "g.fc.run/ai/byre/internal/api" ) func Parse(data []byte) (api.WorkflowDefinition, error) { def := api.WorkflowDefinition{} dec := json.NewDecoder(bytes.NewReader(data)) dec.DisallowUnknownFields() err := dec.Decode(&def) if err != nil { return api.WorkflowDefinition{}, fmt.Errorf("%w: %v", ErrInvalid, err) } return def, Validate(def) }