id; } public function get_type(): string { return $this->type; } public function get_source_pack(): string { return $this->source_pack; } public function get_value() { return $this->value; } public function requires_evidence(): bool { return $this->evidence_required; } public function with_value( $value, string $source_pack ): self { return new self( $this->id, $this->type, $source_pack, $value, $this->evidence_required ); } }