Skip to content

Commit 80864ea

Browse files
authored
WOLS-1.2.0: Update spec with growth stages, meta field, & type aliasing (#8)
1 parent 177180d commit 80864ea

File tree

11 files changed

+501
-217
lines changed

11 files changed

+501
-217
lines changed

ADOPTION.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,40 +7,40 @@ Organizations, projects, and individuals using the WeMush Open Labeling Standard
77
### Commercial Cultivators
88

99
| Organization | Location | Specimens | Use Case | Since |
10-
|--------------|----------|-----------|----------|-------|
10+
| ------------- | --------- | --------- | -------- | ----- |
1111
| **Mush Ohio** | Ohio, USA | Culinary Mushrooms | Production tracking, traceability, customer transparency | 2025 |
1212

1313
### Research Institutions
1414

1515
| Institution | Department | Research Area | Use Case | Since |
16-
|-------------|------------|---------------|----------|-------|
16+
| ------------- | ----------- | ----------- | -------- | ----- |
1717
| [Add your institution] | | | | |
1818

1919
### Equipment Manufacturers
2020

2121
| Manufacturer | Product Line | Integration | Use Case | Since |
22-
|--------------|--------------|-------------|----------|-------|
22+
| ------------- | ------------- | ----------- | -------- | ----- |
2323
| [Add your company] | | | | |
2424

2525
### Platforms & Software
2626

2727
| Platform | Type | WOLS Support | Use Case | Since |
28-
|----------|------|--------------|----------|-------|
28+
| -------- | ---- | ------------ | -------- | ----- |
2929
| **WeMush** | Cultivation management | ✅ Native | Complete specimen tracking platform | 2025 |
3030

3131
## Projects & Implementations
3232

3333
### Open Source Projects
3434

3535
| Project | Language | Type | Description | Repository |
36-
|---------|----------|------|-------------|------------|
37-
| [@wemush/wols](https://github.com/wemush/specimen-labels-js) | TypeScript | Library | Official JavaScript/TypeScript implementation | 📋 Planned |
38-
| [wols](https://github.com/wemush/specimen-labels-py) | Python | Library | Official Python implementation | 📋 Planned |
36+
| ------- | -------- | ---- | ----------- | ---------- |
37+
| [@wemush/wols](https://github.com/wemush/specimen-labels-js) | TypeScript | Library | Official JavaScript/TypeScript implementation | ✅ Released |
38+
| [wols](https://github.com/wemush/specimen-labels-py) | Python | Library | Official Python implementation | ✅ Released |
3939

4040
### Research Papers
4141

4242
| Title | Authors | Institution | Year | DOI/Link |
43-
|-------|---------|-------------|------|----------|
43+
| ------ | --------- | ------------- | ------ | ---------- |
4444
| [Add your research] | | | | |
4545

4646
## Use Cases
@@ -196,7 +196,7 @@ If you use WOLS in academic research, please cite:
196196
### Research Using WOLS
197197

198198
| Paper | Authors | Journal | Year | DOI |
199-
|-------|---------|---------|------|-----|
199+
| ------- | -------- | --------- | ------ | ----- |
200200
| [Add your publication] | | | | |
201201

202202
**Published research using WOLS?** [Submit it here](https://github.com/wemush/open-standard/issues/new?template=research.md)
@@ -206,19 +206,19 @@ If you use WOLS in academic research, please cite:
206206
### Software Platforms
207207

208208
| Platform | Integration Type | Status | Documentation |
209-
|----------|-----------------|--------|---------------|
209+
| -------- | ---------------- | ------ | ------------- |
210210
| WeMush | Native | ✅ Live | [docs.wemush.com](https://docs.wemush.com) |
211211

212212
### IoT & Hardware
213213

214214
| Device/Sensor | Manufacturer | Integration | Status |
215-
|---------------|--------------|-------------|--------|
215+
| ------------- | ------------- | ----------- | ------ |
216216
| [Add your device] | | | |
217217

218218
### Label Printers
219219

220220
| Printer Model | Manufacturer | Compatible | Notes |
221-
|---------------|--------------|------------|-------|
221+
| ------------- | ------------- | ---------- | ------- |
222222
| Brother QL-820NWB | Brother | ✅ Yes | 2.4" labels recommended |
223223
| Dymo LabelWriter 550 | Dymo | ✅ Yes | QR codes print well |
224224
| Rollo Label Printer | Rollo | ✅ Yes | High-speed printing |
@@ -261,7 +261,7 @@ If you use WOLS in academic research, please cite:
261261
- **Industries**: Agriculture, Research, [more coming]
262262
- **Active Since**: December 2025
263263

264-
*Last updated: December 18, 2025*
264+
*Last updated: January 26, 2026*
265265

266266
## Testimonials
267267

@@ -338,7 +338,7 @@ Organizations using WOLS can display these badges on their websites:
338338
**Version Badge**:
339339

340340
```markdown
341-
[![WOLS v1.0.0](https://img.shields.io/badge/WOLS-v1.0.0-blue)](https://github.com/wemush/open-standard)
341+
[![WOLS v1.2.0](https://img.shields.io/badge/WOLS-v1.2.0-blue)](https://github.com/wemush/open-standard)
342342
```
343343

344344
### Logo Usage

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ describe('generateLabel', () => {
295295
});
296296

297297
it('should handle all specimen types', () => {
298-
const types = ['CULTURE', 'SPAWN', 'SUBSTRATE', 'FRUITING'];
298+
const types = ['CULTURE', 'SPAWN', 'SUBSTRATE', 'FRUITING', 'HARVEST'];
299299
types.forEach(type => {
300300
const label = generateLabel({ /* ... */ type });
301301
expect(label.type).toBe(type);

GOVERNANCE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Develop and maintain an open, vendor-agnostic specification that enables:
4444
**Current Members**:
4545

4646
| Name | Affiliation | Role | Term |
47-
|------|-------------|------|------|
47+
| ---- | ------------- | ------ | ------ |
4848
| Mark Beacom | WeMush Foundation | Chair | 2025-2027 |
4949
| [Open] | Commercial Industry | Industry Rep | TBD |
5050
| [Open] | Academic Institution | Research Rep | TBD |

README.md

Lines changed: 64 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# WeMush Open Labeling Standard (WOLS)
22

3-
[![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)](https://github.com/wemush/open-standard/releases)
3+
[![Version](https://img.shields.io/badge/version-1.2.0-blue.svg)](https://github.com/wemush/open-standard/releases)
44
[![License](https://img.shields.io/badge/license-CC%20BY%204.0-green.svg)](LICENSE)
55
[![Discussions](https://img.shields.io/github/discussions/wemush/open-standard)](https://github.com/wemush/open-standard/discussions)
66
[![Stars](https://img.shields.io/github/stars/wemush/open-standard?style=social)](https://github.com/wemush/open-standard/stargazers)
@@ -123,7 +123,7 @@ print(f"Created: {specimen.created}")
123123
### Official Libraries
124124

125125
| Language | Package | Repository | Status |
126-
|----------|---------|-----------|--------|
126+
| -------- | -------- | --------- | ------ |
127127
| **JavaScript/TypeScript** | `npm install @wemush/wols` | [specimen-labels-js](https://github.com/wemush/specimen-labels-js) | ✅ Released |
128128
| **Python** | `pip install wols` | [specimen-labels-py](https://github.com/wemush/specimen-labels-py) | ✅ Released |
129129
| **Container/CLI** | `docker pull ghcr.io/wemush/specimen-labels-py:latest` | [ghcr.io/wemush/specimen-labels-py](https://ghcr.io/wemush/specimen-labels-py) | ✅ Released |
@@ -133,7 +133,7 @@ print(f"Created: {specimen.created}")
133133
### Platform Support
134134

135135
| Platform | WOLS Support | Link |
136-
|----------|--------------|------|
136+
| -------- | ------------ | ---- |
137137
| **WeMush** | ✅ Native | [wemush.com](https://wemush.com) |
138138
| **[Your Platform?]** | [Submit PR] | [Your link] |
139139

@@ -147,20 +147,34 @@ print(f"Created: {specimen.created}")
147147

148148
```typescript
149149
interface SpecimenLabel {
150-
// Required
151-
id: string; // Unique identifier
152-
version: string; // Spec version (e.g., "1.0.0")
153-
type: SpecimenType; // CULTURE | SPAWN | SUBSTRATE | FRUITING
150+
// JSON-LD Context (Required)
151+
"@context": string; // Schema URL: "https://wemush.com/wols/v1"
152+
"@type": string; // Entity type: "Specimen"
153+
154+
// Required Fields
155+
id: string; // Unique identifier with wemush: prefix
156+
version: string; // Spec version (e.g., "1.2.0")
157+
type: SpecimenType; // CULTURE | SPAWN | SUBSTRATE | FRUITING | HARVEST
154158
species: string; // Scientific name
155-
stage: GrowthStage; // Current growth stage
159+
160+
// Taxonomy & Genetics
161+
strain?: {
162+
name: string; // Strain name or identifier
163+
generation?: string; // Filial generation (e.g., "F1", "F2", "P")
164+
clonalGeneration?: number; // Subculture/clone count
165+
lineage?: string; // Parent specimen ID reference
166+
source?: string; // "spore", "tissue", "agar", "liquid"
167+
};
168+
169+
// Lifecycle Tracking
170+
stage: GrowthStage; // Current growth stage (7 stages in v1.2.0)
156171
created: string; // ISO 8601 timestamp
172+
batch?: string; // Associated batch identifier
157173

158-
// Optional
159-
strain?: string; // Strain identifier
160-
genetics?: GeneticsInfo; // Lineage tracking
161-
batchId?: string; // Batch/cohort identifier
174+
// Attribution & Extensibility
162175
organization?: string; // Organization ID
163176
custom?: Record<string, any>; // Extensible fields
177+
_meta?: Record<string, any>; // Implementation metadata (v1.2.0)
164178
signature?: string; // Cryptographic signature
165179
}
166180
```
@@ -177,11 +191,16 @@ wemush://v1/clx1a2b3c4?s=POSTR&st=COLONIZATION&t=1734307200
177191

178192
```json
179193
{
180-
"v": "1.0.0",
181-
"id": "clx1a2b3c4",
194+
"@context": "https://wemush.com/wols/v1",
195+
"@type": "Specimen",
196+
"id": "wemush:clx1a2b3c4d5e6f7g8",
197+
"version": "1.2.0",
182198
"type": "SUBSTRATE",
183199
"species": "Pleurotus ostreatus",
184-
"strain": "Blue Oyster",
200+
"strain": {
201+
"name": "Blue Oyster PoHu",
202+
"generation": "F2"
203+
},
185204
"stage": "COLONIZATION",
186205
"created": "2025-12-16T10:30:00Z"
187206
}
@@ -307,7 +326,7 @@ We welcome contributions from:
307326
### Contribution Types
308327

309328
| Type | Description | Examples |
310-
|------|-------------|----------|
329+
| ---- | ----------- | -------- |
311330
| 🐛 **Bug Fix** | Fix errors in spec or code | Typos, broken links, incorrect examples |
312331
|**Enhancement** | Improve existing features | Better examples, clearer docs |
313332
| 🎉 **New Feature** | Propose spec additions | New fields, encoding formats |
@@ -351,7 +370,7 @@ The WOLS specification is governed by a steering committee that reviews proposal
351370
### Organizations Using WOLS
352371

353372
| Organization | Type | Use Case | Since |
354-
|--------------|------|----------|-------|
373+
| ------------- | ------ | ---------- | ------- |
355374
| **Mush Ohio** | Commercial Farm | Production tracking | 2025 |
356375
| [Your org?] | [Type] | [Use case] | [Year] |
357376

@@ -421,21 +440,43 @@ Special thanks to early adopters, beta testers, and everyone providing feedback.
421440

422441
## Roadmap
423442

424-
### Current: Version 1.0.0 (Dec 2025)
443+
### Version History
444+
445+
#### Version 1.0.0 (Dec 2025)
425446

426447
- ✅ Core specification released
427-
- ✅ JavaScript/TypeScript library
428-
- ✅ Python library (beta)
448+
- ✅ Basic specimen types (CULTURE, SPAWN, SUBSTRATE, FRUITING)
449+
- ✅ 4 growth stages (INOCULATION, COLONIZATION, FRUITING, HARVEST)
450+
- ✅ Compact and embedded encoding formats
451+
- ✅ Basic strain tracking (string format)
452+
- ✅ Environmental data support
453+
454+
#### Version 1.1.0 (Jan 2026)
455+
456+
- ✅ JSON-LD format with `@context` and `@type` fields
457+
- ✅ Enhanced strain object (name, generation, lineage, source)
458+
- ✅ Structured ID format with `wemush:` prefix
459+
- ✅ Added HARVEST specimen type (5 types total)
460+
- ✅ JavaScript/TypeScript library released
461+
- ✅ Python library released
462+
- ✅ Field renames for clarity (`batchId``batch`, `organizationId``organization`)
463+
464+
#### Version 1.2.0 (Jan 2026) — Current
465+
466+
- ✅ Extended growth stages (7 stages: added INCUBATION, PRIMORDIA, SENESCENCE)
467+
- ✅ Type aliases and generation flexibility (clonalGeneration support)
468+
-`_meta` namespace for implementation metadata
429469
- ✅ Reference implementation (WeMush platform)
470+
- ✅ Comprehensive documentation and examples
430471

431-
### Next: Version 1.1.0 (Q1 2026)
472+
### Next: Version 1.3.0 (Q2 2026)
432473

433474
- 🚧 IoT sensor integration spec
434475
- 🚧 Blockchain verification option
435476
- 🚧 Image metadata standard
436477
- 🚧 Multi-language translations
437478

438-
### Future: Version 2.0.0 (Q2 2026)
479+
### Future: Version 2.0.0 (Q3-Q4 2026)
439480

440481
- 📋 Extended field data support
441482
- 📋 Advanced genetic encoding
@@ -518,7 +559,7 @@ WOLS development is supported by:
518559

519560
<div align="center">
520561

521-
**Built with 🍄 by cultivators, for cultivators**
562+
Built with 🍄 by cultivators, for cultivators
522563

523564
[⭐ Star this repo](https://github.com/wemush/open-standard)[📖 Read the spec](https://wemush.com/open-standard/specification)[💬 Join the discussion](https://github.com/wemush/open-standard/discussions)[🚀 Use the platform](https://wemush.com)
524565

0 commit comments

Comments
 (0)