Files
zeekay 0c2f028a8c Generate the Swift client, which this copy did not carry
The forge tree held the package scaffolding and none of the generated sources —
2,435 files of APIs, Models and Infrastructure, including BaseAPI, were simply
absent, so anything depending on this copy had a package that compiled to
nothing usable.

Generated from the current API document rather than reconciled with the other
copy: a client is a function of the spec, so regenerating answers "which history
wins" without anyone having to choose. .spec-lock records which document, so the
next reader can tell.
2026-08-23 10:04:41 -07:00

79 lines
3.4 KiB
Swift

//
// Strategy.swift
//
// Generated by openapi-generator
// https://openapi-generator.tech
//
import Foundation
public struct Strategy: Sendable, Codable, ParameterConvertible, Hashable {
/** Action is the tactic itself: the thing to go and do, stated imperatively. */
public var action: String?
/** Blog is the tactic's long-form explainer; absent for tactics that have none. */
public var blog: Blog?
/** Category is the growth discipline the tactic belongs to — the axis `?category=` narrows the corpus on, and one of the facets a caller browses by. */
public var category: String?
/** Enabled is the admin lever. Absent reads as ON; an explicit false drops the tactic from every org-facing corpus read while leaving it in the document. */
public var enabled: Bool?
/** Era separates an AI-era tactic (`modern`) from a classical one (`heritage`). */
public var era: String?
/** ID is the tactic's stable slug, unique across the corpus. */
public var id: String?
/** Principle is the spine slug this tactic files under (a Principle.Slug). */
public var principle: String?
/** Source is where the tactic came from — the attribution a reader is owed. */
public var source: String?
/** Tags are PRECONDITIONS, not labels — every one must be satisfied by the org's observed profile before the tactic surfaces, so an untagged tactic is universally applicable. Two vocabularies: `stage:<research|formed|launched| activated|scaling>` reads the org's growth stage, `has:<capability>` reads an observed signal. */
public var tags: [String]?
/** Workload is how much effort running the tactic costs, so a corpus can be narrowed to what an org has the hands for right now. */
public var workload: String?
public init(action: String? = nil, blog: Blog? = nil, category: String? = nil, enabled: Bool? = nil, era: String? = nil, id: String? = nil, principle: String? = nil, source: String? = nil, tags: [String]? = nil, workload: String? = nil) {
self.action = action
self.blog = blog
self.category = category
self.enabled = enabled
self.era = era
self.id = id
self.principle = principle
self.source = source
self.tags = tags
self.workload = workload
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case action
case blog
case category
case enabled
case era
case id
case principle
case source
case tags
case workload
}
// Encodable protocol methods
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(action, forKey: .action)
try container.encodeIfPresent(blog, forKey: .blog)
try container.encodeIfPresent(category, forKey: .category)
try container.encodeIfPresent(enabled, forKey: .enabled)
try container.encodeIfPresent(era, forKey: .era)
try container.encodeIfPresent(id, forKey: .id)
try container.encodeIfPresent(principle, forKey: .principle)
try container.encodeIfPresent(source, forKey: .source)
try container.encodeIfPresent(tags, forKey: .tags)
try container.encodeIfPresent(workload, forKey: .workload)
}
}
@available(iOS 13, tvOS 13, watchOS 6, macOS 10.15, *)
extension Strategy: Identifiable {}