mirror of
https://github.com/hanzoai/swift-sdk.git
synced 2026-10-30 18:20:19 +00:00
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.
79 lines
3.4 KiB
Swift
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 {}
|