package docs var planRefs = []refSpec{{"tracking", kURL}, {"adrs", kAdr}, {"completion", kURL | kFile}} func (c *checker) plan(r *record, m *fm) { m.keys("status", "tracking", "adrs", "completion") status, ok := m.enum("status", "draft", "active", "completed", "cancelled") m.refs(planRefs...) r.status = status if !ok { return } closed := status == "completed" || status == "cancelled" if status == "active" && len(r.lists["tracking"]) == 0 { m.problemf("status", "status active requires tracking") } if closed && len(r.lists["completion"]) == 0 { m.problemf("status", "status %s requires completion", status) } if !closed && len(r.lists["completion"]) > 0 { m.problemf("completion", "completion must be empty while status is %s", status) } }