Valid Instances of `Effect` Interface

What makes an interface a valid instance of
Effect
?

I was looking into Tag and it's defined as follows:
export interface Tag<in out Identifier, in out Service> extends Pipeable, Inspectable {
  readonly _tag: "Tag"
  readonly _op: "Tag"
  readonly [TagTypeId]: {
    readonly _Service: Types.Invariant<Service>
    readonly _Identifier: Types.Invariant<Identifier>
  }
  of(self: Service): Service
  context(self: Service): Context<Identifier>
  readonly stack?: string | undefined
  readonly identifier?: unknown
  [Unify.typeSymbol]?: unknown
  [Unify.unifySymbol]?: TagUnify<this>
  [Unify.ignoreSymbol]?: TagUnifyIgnore
}


Which of these parameters makes Tag an
Effect
(such that it is possible to use for example map and flatMap on it)?
Was this page helpful?