docs: @SuppressWarnings("unchecked")
  	public <S extends io.sarl.lang.core.Space> S getOrCreateSpaceWithSpec(SpaceID spaceID,
  			Class<? extends SpaceSpecification<S>> spec, Object... creationParams) {
  		synchronized (getSpaceRepositoryMutex()) {
  			final Collection<SpaceID> ispaces = this.spacesBySpec.get(spec);
  			final S firstSpace;
  			if (ispaces == null || ispaces.isEmpty()) {
  				firstSpace = createSpaceInstance(spec, spaceID, true, creationParams);
  			} else {
  				firstSpace = (S) this.spaces.get(ispaces.iterator().next());
  			}
  			assert firstSpace != null;
  			return firstSpace;
  		}
  	}